package com.ayz.gateway.server.grpc;

import lombok.Data;

import java.util.concurrent.TimeUnit;

/**
 * @ClassName GrpcServerConfig
 * @Description TODO:GRPC服务端的配置项参数
 * @Author 快乐的星球
 * @Date 2023/5/17 23:08
 * @Version 1.0
 **/
@Data
public class GrpcServerConfig {
    /**
     * 监听的端口号
     */
    private int listenPort=9999;
    /**
     * 默认最大的入站流量为 10M
     * 主要是用来限速的
     */
    private int maxInboundMessageSize=10*1024*1024;
    /**
     * 服务端默认的心跳时间 为2小时
     */
    private long serverKeepaliveTime= TimeUnit.HOURS.toMillis(2);
    /**
     * 服务端默认心跳超时时间为 20S
     */
    private long serverKeepaliveTimeout=TimeUnit.SECONDS.toMillis(20);
    /**
     * 服务端心跳超时后允许当前连接存活的时间 默认为5分钟
     * 可以做一些善后工作
     */
    private long grpcPermitKeepAliveTime=TimeUnit.MINUTES.toMillis(5);

    /**
     * GRPC处理线程池核心线程的数目
     */
    private int corePoolSize=16;
    /**
     * GRPC最大线程池的个数
     */
    private int maxPoolSize=16;
    /**
     * GRPC最大任务队列的大小为16384
     */
    private int maxTaskQueueSize=1<<14;
}
